﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using Modelo.Modulos.ClasesModelado;

namespace AccesoDatos.Modulos.ClasesAccesoDatos
{
   public class PermisosBD
    {
        public List<PermisosMod> ConsultarPermisos(SqlCommand comando)
        {
            try
            {
                string sp = "spConsultarPermisos";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                List<PermisosMod> lista = new List<PermisosMod>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    PermisosMod obj = new PermisosMod();
                    obj.IdPremiso = Convert.ToInt32(dt.Rows[i]["IdPremiso"]);
                    obj.NombrePermiso = dt.Rows[i]["NombrePermiso"].ToString();
                    obj.NombreModulo = dt.Rows[i]["NombreModulo"].ToString();
                    lista.Add(obj);
                }


                return lista;

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
        public void InsertarPerfil_Permiso(SqlCommand comando, PerfilesMod obj,int idPermiso)
        {
            try
            {
                string sp = "spInsertarPerfil_Permiso";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();


                comando.Parameters.Add(new SqlParameter("@IdPerfil", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@IdPermiso", SqlDbType.Int));
              


                comando.Parameters[0].Value =obj.IdPerfil;
                comando.Parameters[1].Value = idPermiso;
               



                comando.ExecuteNonQuery();

               

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }

        public void ActualizarPermisos(SqlCommand comando, PerfilesMod obj, int idPermiso)
        {
            try
            {
                string sp = "spActualizarPerfil_Permiso";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@IdPerfil", SqlDbType.Int));
                comando.Parameters.Add(new SqlParameter("@IdPermiso", SqlDbType.Int));
               

                comando.Parameters[0].Value = obj.IdPerfil;
                comando.Parameters[1].Value = idPermiso;
              


                comando.ExecuteNonQuery();


            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
        public List<PerfilesMod> ConsultarPermisoIdPerfil(SqlCommand comando, PerfilesMod objs)
        {
            try
            {
                string sp = "spConsultarPermisoByIdPerfil";

                comando.CommandType = CommandType.StoredProcedure;
                comando.CommandText = sp;
                comando.Parameters.Clear();

                comando.Parameters.Add(new SqlParameter("@IdPerfil", SqlDbType.Int));

                comando.Parameters[0].Value = objs.IdPerfil;

                IDbDataAdapter da = new SqlDataAdapter((SqlCommand)comando);
                DataSet ds = new DataSet();
                da.Fill(ds);

                DataTable dt = ds.Tables[0];
                List<PerfilesMod> lista = new List<PerfilesMod>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    PerfilesMod obj = new PerfilesMod();

                    obj.IdPermiso = Convert.ToInt32(dt.Rows[i]["IdPermiso"]);
                    obj.NombrePermiso = dt.Rows[i]["NombrePermiso"].ToString();
                    obj.NombreModulo = dt.Rows[i]["NombreModulo"].ToString();


                    lista.Add(obj);
                }


                return lista;

            }
            catch (Exception exc)
            {
                throw exc;
            }
        }
   
   }
    
}
